Laboratoire : Calculateur de Routage de Dijkstra

L'Objectif 🎯

  • La Tâche : Trouver le meilleur chemin depuis un serveur source `S` vers tous les autres serveurs.
  • La Sortie : Pour chaque serveur `i`, vous devez calculer :
    • Latence Totale : Le coût minimal (chemin le plus court) du serveur `S` vers `i`.
    • Prochain Saut : Le *premier serveur* sur ce chemin le plus court.
  • Exemple : Si le meilleur chemin de `S` vers `D` est `S -> A -> B -> D`, alors le **Prochain Saut** est `A`.

Le Réseau 💾

Nous utiliserons une Liste d'Adjacence pour stocker le réseau.
  • Les serveurs sont des nœuds.
  • Les connexions sont des arêtes bidirectionnelles.
  • La latence est un poids positif.
// Liens : 0-1 (10 ms), 0-2 (3 ms)
adj = [
0 :[(1, 10), (2, 3)],
1 :[(0, 10)],
2 :[(0, 3)],
...
]

Le Format de la Sortie ⚙️

Vous devez imprimer `V` lignes. Chaque ligne `i` correspond au serveur `i`.

  • [latence] [prochain_saut]

    Pour un nœud accessible.

  • 0 -1

    Si le nœud est la source `S` elle-même.

  • -1 -1

    Si le nœud est inaccessible depuis `S`.